package com.imut.oa.service;

import com.imut.oa.common.PageResult;
import com.imut.oa.pojo.dto.LeavePageQueryDTO;
import com.imut.oa.pojo.dto.LeaveSubmitDTO;
import com.imut.oa.pojo.dto.CommonUserPageQueryDTO;
import com.imut.oa.pojo.dto.UpdateLeaveStatusDTO;

public interface LeaveService {
    /**
     * 分页查询请假记录
     * @param leavePageQueryDTO
     * @return
     */
    PageResult getLeavePage(LeavePageQueryDTO leavePageQueryDTO);
    /**
     * 更新请假状态
     * @param updateLeaveStatusDTO
     */
    void updateStatus(UpdateLeaveStatusDTO updateLeaveStatusDTO);
    /**
     * 提交请假申请
     * @param submitDTO
     */
    void submitLeave(LeaveSubmitDTO submitDTO);

    /**
     * 获取请假记录
     * @param commonUserPageQueryDTO
     * @return
     */
    PageResult getLeaveHistory(CommonUserPageQueryDTO commonUserPageQueryDTO);
    /**
     * 撤销请假申请
     * @param leaveId
     */
    void cancelLeave(Long leaveId);
    /**
     * 检查用户今日是否请假
     * @param currentId
     * @param day
     * @return
     */
    boolean checkIsLeaveToday(Long currentId, String day);
}
